#ifndef LLIST_H
#define LLIST_H

typedef struct node {
	struct node* next;
	void* data;
} LList;

unsigned int lappend(LList** list, void* data);
unsigned int lcount(LList** list);
int lfind(LList** list, void* data);
int lfindstr(LList** list, char* data);
void linsert(LList** list, unsigned int i, void* data);
void lremove(LList** list, void* data);
void* ldelete(LList** list, int i);
void clear(LList** list);

#define foreach(l, list) for(l=list; l; l=l->next)
#define empty(s) (*s == NULL)

#endif
